package biblioGraphiqueV2;

import java.util.HashMap;


public class Lecteur extends Personne{

	private static final long serialVersionUID = 1L;
		
	private String numLecteur;
	private String adresse;
	private String telephone;
	private HashMap<Integer, Reservation> reservations; 
	private HashMap<Integer, Emprunt> emprunts;

	
	/**
	 * Constructeur
	 * @param numLecteur, nom, prenom, adresse, telephone
	 */
	public Lecteur(String num, String nom, String prenom, String adresse, String telephone)
	{
		super(nom,prenom);
		this.numLecteur = num;
		this.adresse = adresse;
		this.telephone = telephone;
		setEmprunts(new HashMap<Integer, Emprunt>());
		setReservations(new HashMap<Integer, Reservation>());
	}
	

	/**
	 * getter du num
	 */
	public String getNumLecteur(){
		return numLecteur;
	}
	
	/**
	 * Getter de l'adresse
	 */
	public String getAdresse(){
		return	adresse;
	}
	/**
	 * Getter du téléphone
	 */
	public String getTel(){
		return	telephone;
	}
	/**
	 * Getter d'un emprunts
	 */
	public Emprunt getEmprunt(int numero) {
		return (Emprunt) emprunts.get(numero);
	}
	
	/**
	 * Getter de l'ensemble des emprunts
	 */
	public HashMap<Integer, Emprunt> getEmprunt() {
		return emprunts;
	}
	
	/**
	 * Getter de l'ensemble des réservations
	 */
	public HashMap<Integer, Reservation> getReservations() {
		return reservations;
	}
	
	/**
	 * Getter d'une réservation
	 */
	public Reservation getReservation(int numero) {
		return this.getReservations().get(numero);

	}
	/**
	 * Setter de numLecteur
	 */	
	public void setNumLecteur(String num){		
			this.numLecteur = num;	
	}	

	/**
	 * Setter de l'adresse
	 */	
	public void setAdresse(String adr){		
			this.adresse = adr;	
	}
	/**
	 * Setter du telephone
	 */	
	public void setTel(String tel){		
			this.telephone = tel;	
	}
	
	/**
	 * Setter de l'ensemble des emprunts
	 * @param vecteur emprunts
	 */
	public void setEmprunts(HashMap<Integer, Emprunt> emprunts) {
		this.emprunts = emprunts;
	}
	
	/**
	 * Setter des réservations
	 * @param hashmap de réservations
	 */
	public void setReservations(HashMap<Integer, Reservation> reservations) {
		this.reservations = reservations;
	}
	
	//-----------------------------------------//
	//Traitements
	//-----------------------------------------//
	
	/**
	 * Lie un emprunt au lecteur
	 */
	public void setEmprunt(Emprunt emprunt) {
		emprunts.put(emprunt.getNumero(), emprunt);
	}
	
	public int getNbEmprunts(){
		return emprunts.size();
	}
	public int getNbReservations(){
		return reservations.size();
	}
	
	/**
	 * Lie une réservation au lecteur
	 */
	public void setReservation(Reservation reservation) {
		this.getReservations().put(reservations.size()+1, reservation);
	}

	public void retirerEmprunt(Emprunt emprunt){
		emprunts.remove(emprunt.getNumero());
	}
}
